package emp.entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.axcessfinancial.domain.*;
import com.sun.org.apache.xml.internal.security.c14n.helper.C14nHelper;

@Entity
@Table(name="articulo")
public class EntArticulo extends com.axcessfinancial.domain.BaseEntity implements Serializable{

	private String descripcion;
	private String nombreCorto; 
	private EntMarca entMarca; 
	private EntCategoria entCategoria; 
	private EntUnidadMedida entUnidadMedida; 
	private double precioCompra;
	private double stockMin;
	private double stockMax;
	private int inventario;
	private int estado;
	private String descripcionEn;
	private int disponibleWeb;
	private Date ultimaFechaCompra;
	private byte[] especificacion;
	private byte[] especificacionEn;
	private int maximoPedido; 
	private int original; 
	private EntColor entColor; 
	private EntModelo entModelo; 
	private double precioMenor;
	private double precioMayor;
	private double precioPromocion;
	private int factorPrecio;
	private int flagPromocion;
	private double peso;
	
	@Column(name="descripcion", length=250)
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@Column(name="nombreCorto", length=50)
	public String getNombreCorto() {
		return nombreCorto;
	}
	public void setNombreCorto(String nombreCorto) {
		this.nombreCorto = nombreCorto;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idMarca")
	public EntMarca getEntMarca() {
		return entMarca;
	}
	public void setEntMarca(EntMarca entMarca) {
		this.entMarca = entMarca;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idCategoria")
	public EntCategoria getEntCategoria() {
		return entCategoria;
	}
	public void setEntCategoria(EntCategoria entCategoria) {
		this.entCategoria = entCategoria;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idUnidadMedida")
	public EntUnidadMedida getEntUnidadMedida() {
		return entUnidadMedida;
	}
	public void setEntUnidadMedida(EntUnidadMedida entUnidadMedida) {
		this.entUnidadMedida = entUnidadMedida;
	}

	@Column(name="precioCompra", length=12, precision=2)
	public double getPrecioCompra() {
		return precioCompra;
	}
	public void setPrecioCompra(double precioCompra) {
		this.precioCompra = precioCompra;
	}

	@Column(name="stockMin", length=12, precision=2)
	public double getStockMin() {
		return stockMin;
	}
	public void setStockMin(double stockMin) {
		this.stockMin = stockMin;
	}

	@Column(name="stockMax", length=12, precision=2)
	public double getStockMax() {
		return stockMax;
	}
	public void setStockMax(double stockMax) {
		this.stockMax = stockMax;
	}

	@Column(name="inventario")
	public int getInventario() {
		return inventario;
	}
	public void setInventario(int inventario) {
		this.inventario = inventario;
	}

	@Column(name="estado")
	public int getEstado() {
		return estado;
	}
	public void setEstado(int estado) {
		this.estado = estado;
	}
	
	@Column(name="descripcionEn", length=250)
	public String getDescripcionEn() {
		return descripcionEn;
	}
	public void setDescripcionEn(String descripcionEn) {
		this.descripcionEn = descripcionEn;
	}
	
	@Column(name="disponibleWeb")
	public int getDisponibleWeb() {
		return disponibleWeb;
	}
	public void setDisponibleWeb(int disponibleWeb) {
		this.disponibleWeb = disponibleWeb;
	}
	
	@Column(name="ultimaFechaCompra")
	public Date getUltimaFechaCompra() {
		return ultimaFechaCompra;
	}
	public void setUltimaFechaCompra(Date ultimaFechaCompra) {
		this.ultimaFechaCompra = ultimaFechaCompra;
	}
	
	@Column(name="especificacion")
	public byte[] getEspecificacion() {
		return especificacion;
	}
	public void setEspecificacion(byte[] especificacion) {
		this.especificacion = especificacion;
	}
	
	@Column(name="especificacionEn")
	public byte[] getEspecificacionEn() {
		return especificacionEn;
	}
	public void setEspecificacionEn(byte[] especificacionEn) {
		this.especificacionEn = especificacionEn;
	}
	
	@Column(name="maximoPedido")
	public int getMaximoPedido() {
		return maximoPedido;
	}
	public void setMaximoPedido(int maximoPedido) {
		this.maximoPedido = maximoPedido;
	}
	
	@Column(name="original")
	public int getOriginal() {
		return original;
	}
	public void setOriginal(int original) {
		this.original = original;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idColor")
	public EntColor getEntColor() {
		return entColor;
	}
	public void setEntColor(EntColor entColor) {
		this.entColor = entColor;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idModelo")
	public EntModelo getEntModelo() {
		return entModelo;
	}
	public void setEntModelo(EntModelo entModelo) {
		this.entModelo = entModelo;
	}

	@Column(name="precioMenor", length=12, precision=2)
	public double getPrecioMenor() {
		return precioMenor;
	}
	public void setPrecioMenor(double precioMenor) {
		this.precioMenor = precioMenor;
	}
	
	@Column(name="precioMayor", length=12, precision=2)
	public double getPrecioMayor() {
		return precioMayor;
	}
	public void setPrecioMayor(double precioMayor) {
		this.precioMayor = precioMayor;
	}
	
	@Column(name="precioPromocion", length=12, precision=2)
	public double getPrecioPromocion() {
		return precioPromocion;
	}
	public void setPrecioPromocion(double precioPromocion) {
		this.precioPromocion = precioPromocion;
	}
	
	@Column(name="factorPrecio")
	public int getFactorPrecio() {
		return factorPrecio;
	}
	public void setFactorPrecio(int factorPrecio) {
		this.factorPrecio = factorPrecio;
	}
	
	@Column(name="flagPromocion")
	public int getFlagPromocion() {
		return flagPromocion;
	}
	public void setFlagPromocion(int flagPromocion) {
		this.flagPromocion = flagPromocion;
	}

	@Column(name="peso", length=12, precision=2)
	public double getPeso() {
		return peso;
	}
	public void setPeso(double peso) {
		this.peso = peso;
	}
	
	public EntArticulo() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public EntArticulo(String descripcion, String nombreCorto,
			EntMarca entMarca, EntCategoria entCategoria,
			EntUnidadMedida entUnidadMedida, double precioCompra,
			double stockMin, double stockMax, int inventario, int estado,
			String descripcionEn, int disponibleWeb, Date ultimaFechaCompra,
			byte[] especificacion, byte[] especificacionEn, int maximoPedido,
			int original, EntColor entColor, EntModelo entModelo,
			double precioMenor, double precioMayor, double precioPromocion,
			int factorPrecio, int flagPromocion, double peso) {
		super();
		this.descripcion = descripcion;
		this.nombreCorto = nombreCorto;
		this.entMarca = entMarca;
		this.entCategoria = entCategoria;
		this.entUnidadMedida = entUnidadMedida;
		this.precioCompra = precioCompra;
		this.stockMin = stockMin;
		this.stockMax = stockMax;
		this.inventario = inventario;
		this.estado = estado;
		this.descripcionEn = descripcionEn;
		this.disponibleWeb = disponibleWeb;
		this.ultimaFechaCompra = ultimaFechaCompra;
		this.especificacion = especificacion;
		this.especificacionEn = especificacionEn;
		this.maximoPedido = maximoPedido;
		this.original = original;
		this.entColor = entColor;
		this.entModelo = entModelo;
		this.precioMenor = precioMenor;
		this.precioMayor = precioMayor;
		this.precioPromocion = precioPromocion;
		this.factorPrecio = factorPrecio;
		this.flagPromocion = flagPromocion;
		this.peso = peso;
	}
}
